package aep

type Res struct {
	Msg    string `json:"msg"`  //消息
	Code   int    `json:"code"` //返回码
	Result struct {
		CommandID     string      `json:"commandId"`     //命令id对应上报的任务id
		Command       interface{} `json:"command"`       //下发的命令
		CommandStatus string      `json:"commandStatus"` //命令状态
		ProductID     int         `json:"productId"`     //productId
		DeviceID      string      `json:"deviceId"`      //设备id
		IMEI          string      `json:"imei"`          //imei
		CreateBy      string      `json:"createBy"`      //创建人
		CreateTime    int64       `json:"createTime"`    //创建时间
		TTL           int         `json:"ttl"`           //ttl
	} `json:"result"`

	ErrCode string `json:"error_code"`
	ErrMsg  string `json:"error_desc"`
}

func (this *Res) Ok() bool {
	return len(this.ErrCode) == 0 && this.Code == 0
}

func (this *Res) Error() string {
	if len(this.ErrMsg) > 0 {
		return this.ErrMsg
	}
	return this.Msg
}

func (this *Res) Err() error {
	if this.Ok() {
		return nil
	}
	return this
}

func (this *Res) GetTaskID() string {
	return this.Result.CommandID
}
